package com.lpwa.system.mapper;

import com.lpwa.system.domain.Person;
import com.lpwa.system.domain.TagData;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 标签数据 数据层
 * 
 * @author tanmu
 * @date 2019-06-20
 */
public interface TagDataMapper 
{
	/**
     * 查询标签数据信息
     * 
     * @param id 标签数据ID
     * @return 标签数据信息
     */
	public TagData selectTagDataById(Long id);
	
	/**
     * 查询标签数据列表
     * 
     * @param tagData 标签数据信息
     * @return 标签数据集合
     */
	public List<TagData> selectTagDataList(TagData tagData);
	public List<TagData> selectTagDataListCondition(TagData tagData);
	/**
	 * 查询标签数据列表 查询分表数据
	 *
	 * @param tagData 标签数据信息
	 * @return 标签数据集合
	 */
	public List<TagData> selectTagDataListByTableName(TagData tagData);
	/**
     * 新增标签数据
     * 
     * @param tagData 标签数据信息
     * @return 结果
     */
	public int insertTagData(TagData tagData);
	/**
	 * 新增标签数据Sqlserver
	 *
	 * @param tagData 标签数据信息
	 * @return 结果
	 */
	public int insertSqlserverTagData(TagData tagData);

	/**
     * 修改标签数据
     * 
     * @param tagData 标签数据信息
     * @return 结果
     */
	public int updateTagData(TagData tagData);
	
	/**
     * 删除标签数据
     * 
     * @param id 标签数据ID
     * @return 结果
     */
	public int deleteTagDataById(Long id);
	
	/**
     * 批量删除标签数据
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int deleteTagDataByIds(String[] ids);

	/**
	 * 修改标签最新数据
	 *
	 * @param tagData 标签数据信息
	 * @return 结果
	 */
	public int updateTagLatestData(TagData tagData);


	/**
	 * 分页总数
	 *
	 * @param tagData 标签数据信息
	 * @return 结果
	 */
	public int getCount(TagData tagData);
	/**
	 * 通过标签ID查询绑定人员的ID和名称、组织
	 *
	 * @param tagId 标签数据ID
	 * @return 人员数据信息
	 */
	public List<Person> selectPersonInfoByTagId(@Param("tagId") String tagId);
	/**
	 * 查询所有tad_Data_类型表名
	 *
	 * @return 表名
	 */
	public List<String> selectTagDataTables();

	/**
	 * 查询所有tad_Data_类型表名
	 *
	 * @return 表名
	 */
	public List<String> selectTagDataHorizonTables(@Param("sql") String sql);

}